<?php

// +----------------------------------------------------------------------
// | 订单数据表
// +----------------------------------------------------------------------

namespace common\model;

use think\model\RelationModel;

class OrderModel extends RelationModel
{
    const STATUS_INVALID = 'invalid';// 非法订单
    const STATUS_CANCEL = 'cancel';// 取消订单
    const STATUS_WAIT_FOR_PARTY_A_REVIEW = 'wait_for_party_a_review'; // 待甲方审核
    const STATUS_PARTYB_ACCEPTED = 'partyb_accepted';// 乙方已确认
    const STATUS_WAIT_FOR_SIGN = 'wait_for_sign'; //等待签署合同

    //自动验证
    protected $_validate = [
        ['name', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['name', '1,128', '', self::EXISTS_VALIDATE, 'length'],
        ['number', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['party_a_person_in_charge', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
//        ['man_day', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['man_day', '1,8', '', self::EXISTS_VALIDATE, 'length'],
        ['party_a_person_in_charge', '1,11', '', self::EXISTS_VALIDATE, 'length'],
//        ['man_day_number', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['money', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['money', '1,16', '', self::EXISTS_VALIDATE, 'length'],
        ['step_category_id', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['from_tenant_id', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['to_tenant_id', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT],//必须字段
        ['project_id', '', '', self::MUST_VALIDATE, 'require', self::MODEL_INSERT]//必须字段
    ];

    //自动完成
    protected $_auto = [
        ['start_time', 'strtotime', self::EXISTS_VALIDATE, 'function'],
        ['end_time', 'strtotime', self::EXISTS_VALIDATE, 'function'],
        ['created_by', 'fill_created_by', self::MODEL_INSERT, 'function'],
        ['updated', 'time', self::MODEL_UPDATE, 'function'],
        ['created', 'time', self::MODEL_INSERT, 'function'],
        ['uuid', 'create_uuid', self::MODEL_INSERT, 'function'],
        ['param', 'json_encode', self::EXISTS_VALIDATE, 'function'],
    ];

    /**
     * 获取器：开始时间
     * @param $value
     * @param $data
     * @return array|mixed
     */
//    public function getStartTimeAttr($value, $data)
//    {
//        if (!empty($value)) {
//            return get_format_date($value, 0);
//        }
//        return "";
//    }


    /**
     * 获取器：结束时间
     * @param $value
     * @param $data
     * @return array|mixed
     */
//    public function getEndTimeAttr($value, $data)
//    {
//        if (!empty($value)) {
//            return get_format_date($value, 0);
//        }
//        return "";
//    }

    /**
     * 获取器：更新时间
     * @param $value
     * @param $data
     * @return array|mixed
     */
//    public function getUpdatedAttr($value, $data)
//    {
//        if (!empty($value)) {
//            return get_format_date($value, 1);
//        }
//        return "";
//    }


    /**
     * 获取器：创建时间
     * @param $value
     * @param $data
     * @return array|mixed
     */
//    public function getCreatedAttr($value, $data)
//    {
//        if (!empty($value)) {
//            return get_format_date($value, 1);
//        }
//        return "";
//    }

    /**
     * 获取器：param额外参数
     * @param $value
     * @param $data
     * @return array|mixed
     */
    public function getParamAttr($value, $data)
    {
        if (!empty($value)) {
            return json_decode($value, true);
        }
        return "";
    }
}
